// 不借助call和apply
// Function.prototype.customBind = function (context, ...params) {
//   const onlyKey = Symbol('onlyKey');
//   context[onlyKey] = this;
//   const result = () => {
//     context[onlyKey](...params);
//   };
//   //   delete context[onlyKey];
//   return result;
// };
// 借助call
Function.prototype.customBind = function (context, ...params) {
  return () => this.call(context, ...params);
};

function fn(name, age) {
  console.log(`${name},${this.sex},${age}`);
}
const obj = {
  sex: '男',
};
fn.customBind(obj, '小明', 18)();
